package com.example.demo.mapper;


import com.example.demo.entity.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 注意这是一个接口，不是类
 * 首先就是加注解, 还有就是 在 mybatis 下的 UserMapper.xml 文件
 */
@Mapper
public interface UserMapper {
    // 注册也就是 插入一条用户信息,返回受影响的行数
    int reg(UserInfo userInfo);

    // 登录进行判断，相当于是一个查询操作，所以返回一个对象
    // 登录在哪都是传递 用户名和密码，不存在增加字段的情况，所以不传递对象也可以
//    方案1. UserInfo login(String username,String password);
    // 方案2.在企业中都会传递一个 用户名 查询得到一个对象，
    //   在 controller 里面拿查询到的对象里面的 password 和 用户输入的密码经过加盐算法之后密码是否相同
    //   如果相等，则登陆成功。

    /**
     * 方案2这种方式灵活度更高
     *  方案1 需要提前构造好密码，而且对比是否相等不好弄，尤其是进行加盐算法之后更不好比较
     *  单个字段或者多个字段（只要不是对象），建议加上 @Param("username") 更好
     * @param username
     * @return
     */
    UserInfo login(@Param("username") String username);
}
